package com.um2.mauction.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.*;

@Entity
public class Categorie implements Serializable
{
	private static final long serialVersionUID = 1L;
	private int idCategorie;
	private String nomCategorie;
	// the cmr fields
	private List<Produit> produits =new ArrayList<Produit> ();
	
	public Categorie()
	{}
	
	public Categorie(String nomCategorie)
	{
		this.nomCategorie = nomCategorie;
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	public int getIdCategorie() 
	{
		return this.idCategorie;
	}

	public void setIdCategorie(int idCategorie)
	{
		this.idCategorie = idCategorie;
	}

	public String getNomCategorie()
	{
		return this.nomCategorie;
	}

	public void setNomCategorie(String nomCategorie) 
	{
		this.nomCategorie = nomCategorie;
	}
	
	// The access methods for cmr fields
	@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="categorie", targetEntity=Produit.class)
	public List<Produit> getProduits()
	{
		return this.produits;
	}
	
	public void setProduits(List<Produit> produits)
	{
		this.produits = produits;
	}
	
	// Business methods
	public void assignProduit(Produit p) 
	{
		if (this.produits == null) 
		{
			this.produits = new ArrayList<Produit>();
		}
		p.setCategorie(this);
		this.produits.add(p);
	}
	
	public String toString(){
		return "\n" + getIdCategorie() +
				"\n" + getNomCategorie() + "\n" ;
	}
}


